
package com.insigma.business.qrcode.merchant._provider;



import com.insigma.business.qrcode.common.template.BasePagingResponse;
import com.insigma.business.qrcode.common.vo.BaseDeleteRequest;
import com.insigma.business.qrcode.common.vo.BaseResponse;
import com.insigma.business.qrcode.soldier.dto.SimpleApiRequest;
import com.insigma.business.qrcode.soldier.request.BaseGetRequest;
import com.insigma.business.qrcode.merchant.dto.request.CareWelfareMerchantInfoSearchRequest;
import com.insigma.business.qrcode.welfare.dto.CareScanMerchantInfoResult;
import com.insigma.business.qrcode.welfare.dto.CareMerchantStats;
import com.insigma.business.qrcode.welfare.dto.CareWelfareMerchantInfoDTO;

import java.util.List;


public interface CareWelfareMerchantInfoProvider {

    
    BasePagingResponse<List<CareWelfareMerchantInfoDTO>> searchCareWelfareMerchantInfo(final CareWelfareMerchantInfoSearchRequest careWelfareMerchantInfoSearchRequest);


    BaseResponse<CareMerchantStats> getMerchantStats(SimpleApiRequest request);

    BasePagingResponse<List<CareWelfareMerchantInfoDTO>> searchMerchantInfoBySoldier(final CareWelfareMerchantInfoSearchRequest careWelfareMerchantInfoSearchRequest);

    
    BasePagingResponse<List<CareWelfareMerchantInfoDTO>> searchMerchantInfoWithoutAuth(final CareWelfareMerchantInfoSearchRequest careWelfareMerchantInfoSearchRequest);

    
    BaseResponse<List<String>> listAllPublishedMerchant(final CareWelfareMerchantInfoSearchRequest careWelfareMerchantInfoSearchRequest);

    
    BaseResponse<CareWelfareMerchantInfoDTO> getCareWelfareMerchantInfo(final BaseGetRequest baseGetRequest);

    
    BaseResponse<CareWelfareMerchantInfoDTO> getCachedCareWelfareMerchantInfo(final BaseGetRequest baseGetRequest);

    BaseResponse<Integer> deleteCareWelfareMerchantInfo(final BaseDeleteRequest deleteRequest);

    BaseResponse<CareScanMerchantInfoResult> scanMerchantQr(SimpleApiRequest request);

    BaseResponse<CareScanMerchantInfoResult> getMerchantUserMatchInfo(SimpleApiRequest request);


}
